/*
 * Copyright (C)2016 - SMBJ Contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.hierynomus.mssmb2.messages

import com.hierynomus.mserref.NtStatus
import com.hierynomus.protocol.commons.ByteArrayUtils
import com.hierynomus.smb.SMBBuffer
import spock.lang.Specification

class SMB2ReadResponseSpec extends AbstractPacketReadSpec {

  def "should parse read response"() {
    given:
    String hexString1 = "fe534d4240000000000000000800010001000000000000004f0b00000000000000000000010000006100000000740000000000000000000000000000000000001100500099530000000000000000000072290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35373a34322e3839333436322c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35373a34322e3839333536352c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039303032303030303030303030303030464646460a5b323031362f30342f31362030313a35373a34322e3839333630332c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323939323334300a5b323031362f30342f31362030313a35373a34322e3839333634372c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039303032303030303030303030303030464646460a5b323031362f30342f31362030313a35373a34322e3839333636342c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35373a34322e3839333637362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35373a35312e3930383131312c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363537202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35383a32372e3435363430392c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32372e3435363436322c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32372e3435363438372c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32372e3435363530382c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323938346531300a5b323031362f30342f31362030313a35383a32372e3435363533312c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32372e3435363534332c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32372e3435363535342c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32372e3435363538312c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f7574696c2f7574696c5f6e65742e633a383930287072696e745f736f636b65745f6f7074696f6e73290a2020536f636b6574206f7074696f6e733a0a202009534f5f4b454550414c495645203d20310a202009534f5f524555534541444452203d20310a202009534f5f42524f414443415354203d20300a2020095443505f4e4f44454c4159203d20310a2020095443505f4b454550434e54203d20390a2020095443505f4b45455049444c45203d20373230300a2020095443505f4b454550494e54564c203d2037350a2020094950544f535f4c4f5744454c4159203d20300a2020094950544f535f5448524f554748505554203d20300a202009534f5f5245555345504f5254203d20310a202009534f5f534e44425546203d2038373034300a202009534f5f524356425546203d203336393238300a202009534f5f534e444c4f574154203d20310a202009534f5f5243564c4f574154203d20310a202009534f5f534e4454494d454f203d20300a202009534f5f52435654494d454f203d20300a2020095443505f515549434b41434b203d20310a2020095443505f44454645525f414343455054203d20300a5b323031362f30342f31362030313a35383a32372e3435363634352c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f7574696c2f7574696c5f6e65742e633a383930287072696e745f736f636b65745f6f7074696f6e73290a2020536f636b6574206f7074696f6e733a0a202009534f5f4b454550414c495645203d20310a202009534f5f524555534541444452203d20310a202009534f5f42524f414443415354203d20300a2020095443505f4e4f44454c4159203d20310a2020095443505f4b454550434e54203d20390a2020095443505f4b45455049444c45203d20373230300a2020095443505f4b454550494e54564c203d2037350a2020094950544f535f4c4f5744454c4159203d20300a2020094950544f535f5448524f554748505554203d20300a202009534f5f5245555345504f5254203d20310a202009534f5f534e44425546203d2038373034300a202009534f5f524356425546203d203336393238300a202009534f5f534e444c4f574154203d20310a202009534f5f5243564c4f574154203d20310a202009534f5f534e4454494d454f203d20300a202009534f5f52435654494d454f203d20300a2020095443505f515549434b41434b203d20310a2020095443505f44454645525f414343455054203d20300a5b323031362f30342f31362030313a35383a32372e3435363734322c2020332c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f6c69622f6163636573732e633a33333828616c6c6f775f616363657373290a2020416c6c6f77656420636f6e6e656374696f6e2066726f6d203139322e3136382e39392e3120283139322e3136382e39392e31290a5b323031362f30342f31362030313a35383a32372e3435363735362c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f70726f636573732e633a3337313828736d62645f6164645f636f6e6e656374696f6e290a2020436f6e6e656374696f6e20616c6c6f7765642066726f6d20697076343a3139322e3136382e39392e313a363137313520746f20697076343a3137322e31372e302e323a3434350a5b323031362f30342f31362030313a35383a32382e3435383331372c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32382e3435393230382c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32382e3435393335312c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32382e3435393433362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323939323432300a5b323031362f30342f31362030313a35383a32382e3435393535312c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32382e3435393539352c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32382e3435393632362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a35312e3933353134382c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363539202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35393a35312e3939383533312c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363634202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35373a34322e3839323637352c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35373a34322e3839333436322c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35373a34322e3839333536352c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039303032303030303030303030303030464646460a5b323031362f30342f31362030313a35373a34322e3839333630332c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323939323334300a5b323031362f30342f31362030313a35373a34322e3839333634372c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039303032303030303030303030303030464646460a5b323031362f30342f31362030313a35373a34322e3839333636342c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35373a34322e3839333637362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35373a35312e3930383131312c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363537202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35383a32372e3435363430392c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32372e3435363436322c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32372e3435363438372c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32372e3435363530382c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323938346531300a5b323031362f30342f31362030313a35383a32372e3435363533312c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32372e3435363534332c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32372e3435363535342c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32372e3435363538312c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f7574696c2f7574696c5f6e65742e633a383930287072696e745f736f636b65745f6f7074696f6e73290a2020536f636b6574206f7074696f6e733a0a202009534f5f4b454550414c495645203d20310a202009534f5f524555534541444452203d20310a202009534f5f42524f414443415354203d20300a2020095443505f4e4f44454c4159203d20310a2020095443505f4b454550434e54203d20390a2020095443505f4b45455049444c45203d20373230300a2020095443505f4b454550494e54564c203d2037350a2020094950544f535f4c4f5744454c4159203d20300a2020094950544f535f5448524f554748505554203d20300a202009534f5f5245555345504f5254203d20310a202009534f5f534e44425546203d2038373034300a202009534f5f524356425546203d203336393238300a202009534f5f534e444c4f574154203d20310a202009534f5f5243564c4f574154203d20310a202009534f5f534e4454494d454f203d20300a202009534f5f52435654494d454f203d20300a2020095443505f515549434b41434b203d20310a2020095443505f44454645525f414343455054203d20300a5b323031362f30342f31362030313a35383a32372e3435363634352c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f7574696c2f7574696c5f6e65742e633a383930287072696e745f736f636b65745f6f7074696f6e73290a2020536f636b6574206f7074696f6e733a0a202009534f5f4b454550414c495645203d20310a202009534f5f524555534541444452203d20310a202009534f5f42524f414443415354203d20300a2020095443505f4e4f44454c4159203d20310a2020095443505f4b454550434e54203d20390a2020095443505f4b45455049444c45203d20373230300a2020095443505f4b454550494e54564c203d2037350a2020094950544f535f4c4f5744454c4159203d20300a2020094950544f535f5448524f554748505554203d20300a202009534f5f5245555345504f5254203d20310a202009534f5f534e44425546203d2038373034300a202009534f5f524356425546203d203336393238300a202009534f5f534e444c4f574154203d20310a202009534f5f5243564c4f574154203d20310a202009534f5f534e4454494d454f203d20300a202009534f5f52435654494d454f203d20300a2020095443505f515549434b41434b203d20310a2020095443505f44454645525f414343455054203d20300a5b323031362f30342f31362030313a35383a32372e3435363734322c2020332c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f6c69622f6163636573732e633a33333828616c6c6f775f616363657373290a2020416c6c6f77656420636f6e6e656374696f6e2066726f6d203139322e3136382e39392e3120283139322e3136382e39392e31290a5b323031362f30342f31362030313a35383a32372e3435363735362c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f70726f636573732e633a3337313828736d62645f6164645f636f6e6e656374696f6e290a2020436f6e6e656374696f6e20616c6c6f7765642066726f6d20697076343a3139322e3136382e39392e313a363137313520746f20697076343a3137322e31372e302e323a3434350a5b323031362f30342f31362030313a35383a32382e3435383331372c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32382e3435393230382c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32382e3435393335312c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32382e3435393433362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323939323432300a5b323031362f30342f31362030313a35383a32382e3435393535312c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32382e3435393539352c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32382e3435393632362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a35312e3933353134382c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363539202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35393a35312e3939383533312c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363634202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35373a34322e3839323637352c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35373a34322e3839333436322c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35373a34322e3839333536352c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039303032303030303030303030303030464646460a5b323031362f30342f31362030313a35373a34322e3839333630332c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323939323334300a5b323031362f30342f31362030313a35373a34322e3839333634372c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039303032303030303030303030303030464646460a5b323031362f30342f31362030313a35373a34322e3839333636342c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35373a34322e3839333637362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35373a35312e3930383131312c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363537202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35383a32372e3435363430392c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32372e3435363436322c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32372e3435363438372c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32372e3435363530382c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323938346531300a5b323031362f30342f31362030313a35383a32372e3435363533312c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32372e3435363534332c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32372e3435363535342c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32372e3435363538312c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f7574696c2f7574696c5f6e65742e633a383930287072696e745f736f636b65745f6f7074696f6e73290a2020536f636b6574206f7074696f6e733a0a202009534f5f4b454550414c495645203d20310a202009534f5f524555534541444452203d20310a202009534f5f42524f414443415354203d20300a2020095443505f4e4f44454c4159203d20310a2020095443505f4b454550434e54203d20390a2020095443505f4b45455049444c45203d20373230300a2020095443505f4b454550494e54564c203d2037350a2020094950544f535f4c4f5744454c4159203d20300a2020094950544f535f5448524f554748505554203d20300a202009534f5f5245555345504f5254203d20310a202009534f5f534e44425546203d2038373034300a202009534f5f524356425546203d203336393238300a202009534f5f534e444c4f574154203d20310a202009534f5f5243564c4f574154203d20310a202009534f5f534e4454494d454f203d20300a202009534f5f52435654494d454f203d20300a2020095443505f515549434b41434b203d20310a2020095443505f44454645525f414343455054203d20300a5b323031362f30342f31362030313a35383a32372e3435363634352c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f7574696c2f7574696c5f6e65742e633a383930287072696e745f736f636b65745f6f7074696f6e73290a2020536f636b6574206f7074696f6e733a0a202009534f5f4b454550414c495645203d20310a202009534f5f524555534541444452203d20310a202009534f5f42524f414443415354203d20300a2020095443505f4e4f44454c4159203d20310a2020095443505f4b454550434e54203d20390a2020095443505f4b45455049444c45203d20373230300a2020095443505f4b454550494e54564c203d2037350a2020094950544f535f4c4f5744454c4159203d20300a2020094950544f535f5448524f554748505554203d20300a202009534f5f5245555345504f5254203d20310a202009534f5f534e44425546203d2038373034300a202009534f5f524356425546203d203336393238300a202009534f5f534e444c4f574154203d20310a202009534f5f5243564c4f574154203d20310a202009534f5f534e4454494d454f203d20300a202009534f5f52435654494d454f203d20300a2020095443505f515549434b41434b203d20310a2020095443505f44454645525f414343455054203d20300a5b323031362f30342f31362030313a35383a32372e3435363734322c2020332c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f6c69622f6163636573732e633a33333828616c6c6f775f616363657373290a2020416c6c6f77656420636f6e6e656374696f6e2066726f6d203139322e3136382e39392e3120283139322e3136382e39392e31290a5b323031362f30342f31362030313a35383a32372e3435363735362c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f70726f636573732e633a3337313828736d62645f6164645f636f6e6e656374696f6e290a2020436f6e6e656374696f6e20616c6c6f7765642066726f6d20697076343a3139322e3136382e39392e313a363137313520746f20697076343a3137322e31372e302e323a3434350a5b323031362f30342f31362030313a35383a32382e3435383331372c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32382e3435393230382c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32382e3435393335312c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32382e3435393433362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323939323432300a5b323031362f30342f31362030313a35383a32382e3435393535312c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32382e3435393539352c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32382e3435393632362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a35312e3933353134382c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363539202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35393a35312e3939383533312c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363634202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35373a34322e3839323637352c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35373a34322e3839333436322c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35373a34322e3839333536352c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039303032303030303030303030303030464646460a5b323031362f30342f31362030313a35373a34322e3839333630332c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323939323334300a5b323031362f30342f31362030313a35373a34322e3839333634372c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039303032303030303030303030303030464646460a5b323031362f30342f31362030313a35373a34322e3839333636342c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35373a34322e3839333637362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35373a35312e3930383131312c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363537202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35383a32372e3435363430392c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32372e3435363436322c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32372e3435363438372c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32372e3435363530382c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323938346531300a5b323031362f30342f31362030313a35383a32372e3435363533312c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32372e3435363534332c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32372e3435363535342c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32372e3435363538312c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f7574696c2f7574696c5f6e65742e633a383930287072696e745f736f636b65745f6f7074696f6e73290a2020536f636b6574206f7074696f6e733a0a202009534f5f4b454550414c495645203d20310a202009534f5f524555534541444452203d20310a202009534f5f42524f414443415354203d20300a2020095443505f4e4f44454c4159203d20310a2020095443505f4b454550434e54203d20390a2020095443505f4b45455049444c45203d20373230300a2020095443505f4b454550494e54564c203d2037350a2020094950544f535f4c4f5744454c4159203d20300a2020094950544f535f5448524f554748505554203d20300a202009534f5f5245555345504f5254203d20310a202009534f5f534e44425546203d2038373034300a202009534f5f524356425546203d203336393238300a202009534f5f534e444c4f574154203d20310a202009534f5f5243564c4f574154203d20310a202009534f5f534e4454494d454f203d20300a202009534f5f52435654494d454f203d20300a2020095443505f515549434b41434b203d20310a2020095443505f44454645525f414343455054203d20300a5b323031362f30342f31362030313a35383a32372e3435363634352c2020352c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f7574696c2f7574696c5f6e65742e633a383930287072696e745f736f636b65745f6f7074696f6e73290a2020536f636b6574206f7074696f6e733a0a202009534f5f4b454550414c495645203d20310a202009534f5f524555534541444452203d20310a202009534f5f42524f414443415354203d20300a2020095443505f4e4f44454c4159203d20310a2020095443505f4b454550434e54203d20390a2020095443505f4b45455049444c45203d20373230300a2020095443505f4b454550494e54564c203d2037350a2020094950544f535f4c4f5744454c4159203d20300a2020094950544f535f5448524f554748505554203d20300a202009534f5f5245555345504f5254203d20310a202009534f5f534e44425546203d2038373034300a202009534f5f524356425546203d203336393238300a202009534f5f534e444c4f574154203d20310a202009534f5f5243564c4f574154203d20310a202009534f5f534e4454494d454f203d20300a202009534f5f52435654494d454f203d20300a2020095443505f515549434b41434b203d20310a2020095443505f44454645525f414343455054203d20300a5b323031362f30342f31362030313a35383a32372e3435363734322c2020332c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f6c69622f6163636573732e633a33333828616c6c6f775f616363657373290a2020416c6c6f77656420636f6e6e656374696f6e2066726f6d203139322e3136382e39392e3120283139322e3136382e39392e31290a5b323031362f30342f31362030313a35383a32372e3435363735362c2031302c207069643d3635382c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f70726f636573732e633a3337313828736d62645f6164645f636f6e6e656374696f6e290a2020436f6e6e656374696f6e20616c6c6f7765642066726f6d20697076343a3139322e3136382e39392e313a363137313520746f20697076343a3137322e31372e302e323a3434350a5b323031362f30342f31362030313a35383a32382e3435383331372c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313738286462777261705f636865636b5f6c6f636b5f6f72646572290a2020636865636b206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32382e3435393230382c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a2f7661722f6c69622f73616d62612f73657276657269642e74646220333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a32382e3435393335312c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a20204c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32382e3435393433362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a3134342864625f7464625f66657463685f6c6f636b65645f696e7465726e616c290a2020416c6c6f6361746564206c6f636b6564206461746120307830783536343135323939323432300a5b323031362f30342f31362030313a35383a32382e3435393535312c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261705f7464622e633a36302864625f7464625f6c6f675f6b6579290a2020556e6c6f636b696e67206b65792039323032303030303030303030303030464646460a5b323031362f30342f31362030313a35383a32382e3435393539352c2020352c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a313436286462777261705f6c6f636b5f6f726465725f73746174655f64657374727563746f72290a202072656c65617365206c6f636b206f72646572203220666f72202f7661722f6c69622f73616d62612f73657276657269642e7464620a5b323031362f30342f31362030313a35383a32382e3435393632362c2031302c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f6c69622f6462777261702f6462777261702e633a3133332864656275675f6c6f636b5f6f72646572290a20206c6f636b206f726465723a2020313a3c6e6f6e653e20323a3c6e6f6e653e20333a3c6e6f6e653e0a5b323031362f30342f31362030313a35383a35312e3933353134382c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363539202d2d2069676e6f72696e670a5b323031362f30342f31362030313a35393a35312e3939383533312c2020322c207069643d31372c2065666665637469766528302c2030292c207265616c28302c2030295d202e2e2f736f75726365332f736d62642f7365727665722e633a3434332872656d6f76655f6368696c645f706964290a2020436f756c64206e6f742066696e64206368696c6420363634202d2d2069676e6f72696e670a"
    byte[] bytes1 = ByteArrayUtils.parseHex(hexString1)

    when:
    def response = convert(bytes1)

    then:
    response.class == SMB2ReadResponse.class
    with(response as SMB2ReadResponse) { r ->
      r.dataLength == 21401
    }
  }

  def "should parse read EOF"() {
    given:
    String hexString1 = "fe534d4240000000110000c0080001000100000000000000500b0000000000000000000001000000610000000074000000000000000000000000000000000000090000000000000099"
    byte[] bytes1 = ByteArrayUtils.parseHex(hexString1)

    when:
    def response = convert(bytes1)

    then:
    response.header.statusCode == NtStatus.STATUS_END_OF_FILE.value
  }

}
